package org.yzl.designPatterns.strategy;

import org.yzl.designPatterns.strategy.impl.StrategyMinusImpl;
import org.yzl.designPatterns.strategy.impl.StrategyPlusImpl;

/**
 * 策略模式
 * 策略模式定义了一系列算法，并将每个算法封装起来，使他们可以相互替换，且算法的变化不会影响到使用算法的客户。
 * 需要设计一个接口，为一系列实现类提供统一的方法，多个实现类实现该接口，
 * 设计一个抽象类（可有可无，属于辅助类），提供辅助函数
 */
public class StrategyTest {
    public static void main(String[] args) {
        IStrategy iStrategyPlus = new StrategyPlusImpl();
        int plusNum = iStrategyPlus.calculate("6+2");
        System.out.println("6+2="+plusNum);

        IStrategy iStrategyMinus = new StrategyMinusImpl();
        int minusNum = iStrategyMinus.calculate("6-2");
        System.out.println("6-2="+minusNum);

    }
}
